Web API
- Web API 是由
Backend 實作給客戶端(如 App)使用的通訊介面
- 通過
HTTP / HTTPS 協議與 API 進行功能互動
- 客戶端需實作與 Web API 溝通的模組
Web API 設計風格
Backend 根據需求、業界需求,誕生的各種常見設計
- 客戶端了解這些風格,能更有效地與 API 交互操作
REST
- 以 REST (Representational State Transfer) 設計的 API 稱作
RESTful API
- 使用標準的 HTTP 方法(GET、POST、PUT、DELETE 等)
- 遵循無狀態原則,請求之間相互獨立
- 基於資源的架構 (每個資源都有獨立 URI)
- 支援 JSON、XML 等資料格式
- 適用場景
gRPC
- Google 開發的高效能遠端調用框架 (RPC)
- 基於 HTTP/2 協議
- 支援多種語言和平台
- 高效的二進制傳輸格式 (Protocol Buffers)
- 支援流式數據傳輸 (Client Streaming 和 Server Streaming)
- 要求客戶端和伺服器間共享
.proto 文件進行開發
- 適用場景
GraphQL
- Facebook 開發的一種查詢語言和 API 執行時運行環境
- 客戶端可以指定需要的資料,避免多餘的數據傳輸
- 支援單一請求查詢多個資源,減少請求次數
- 伺服器端有結構化的 Schema 定義
- 靈活性高,但對開發維護要求更高
- 適用場景
- 需要頻繁組合多資源的應用程式
- 前端需求頻繁變動的專案
SOAP
- SOAP (Simple Object Access Protocol) 是基於 XML 的協議
- 主要用於企業應用集成
- 定義嚴格的消息格式,內建錯誤處理
- 具有更高的安全性 (支援 WS-Security)
- 支援複雜的傳輸層協議 (如 HTTP、SMTP)
- 適用場景
- 與企業應用或傳統系統的集成
- 金融、保險等對安全性要求高的場景
WebSocket
- WebSocket 是一種雙工通信協議
- 允許伺服器與客戶端建立持久連接
- 客戶端和伺服器可以隨時互相傳送消息
- 適用場景
- 即時聊天應用
- 即時數據推送 (股票行情、遊戲數據同步)